classDiagram
    class Subject {
        <<interface>>
        +request(): void
    }
    
    class RealSubject {
        +request(): void
    }

    class Proxy {
        -realSubject: RealSubject
        +request(): void
    }

    Subject <|-- RealSubject : implements
    Subject <|-- Proxy : implements

    Proxy --> RealSubject : uses >
